<!--

    Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:c="http://java.sun.com/jsp/jstl/core">
<body>
<ui:composition template="/viewParameters/template.xhtml">
    <ui:define name="metadata">
        <f:metadata>
            <f:viewParam id="id" name="id" value="#{newsReader.selectedStoryId}"
                     required="true"
                     requiredMessage="You did not specify a headline. (The id parameter is missing)"
                     converterMessage="Invalid headline. (The id parameter is not a number)"
                     validatorMessage="Invalid headline. (The id parameter is not a positive number)">
                <f:validateLongRange minimum="1"/>
            </f:viewParam>
            <ui:include src="events.xhtml"/>
        </f:metadata>
    </ui:define>
    <ui:define name="content">
        <h:messages style="color: red; list-style: none; border: 0 solid red; border-left-width: 2px; padding: 0 5px;"/>
        <h1>#{newsReader.selectedStory.headline}</h1>

        <p>#{newsReader.selectedStory.content}</p>
        <h:form prependId="false">
            <p>
                <h:commandButton id="refresh" value="Refresh"/>
                #{' '}
                <h:commandButton id="refreshClearParam"
                                 value="Refresh (clear param)">
                    <f:param name="id" value="#{null}"/>
                </h:commandButton>
                #{' '}
                <h:commandButton id="refreshWithRedirectParams"
                                 action="/viewParameters/page02.xhtml?faces-redirect=true&amp;includeViewParams=true"
                                 value="Refresh (Redirect After POST w/ params)"/>
                #{' '}
                <h:commandButton id="refreshWithRedirect"
                                 action="/viewParameters/page02.xhtml?faces-redirect=true"
                                 value="Refresh (Redirect After POST w/o params)"/>
            </p>
            <p>
                <h:commandButton id="home"
                                 action="/viewParameters/page01.xhtml?faces-redirect=true&amp;from=story"
                                 value="Home"/>
                #{' '}
                <h:commandButton id="homeRememberSelection"
                                 action="/viewParameters/page01.xhtml?faces-redirect=true&amp;includeViewParams=true&amp;from=story"
                                 value="Home (Keep selection)"/>
                #{' '}
                <h:commandButton id="homeRememberSelectionNavCase"
                                 action="homeWithParams"
                                 value="Home (Keep selection nav case)"/>

                <h:commandButton id="story2RememberSelectionNavCase"
                                 action="story2WithParams"
                                 value="Story2 (Keep selection nav case)"/>

            </p>
        </h:form>
    </ui:define>
</ui:composition>

</body>
</html>
